#pragma once

#include <vector>
#include <string>
#include "vortex/gapi/cubemap.h"
#include "vortex/gapi/shader.h"
#include "vortex/graphics/projection.h"


namespace vortex
{
    class CubemapRenderer
    {
    private:
        std::shared_ptr<ShaderProgram> shader;
        GLuint vao = -1;
        GLuint vbo = -1;

    public:
        CubemapRenderer();
        ~CubemapRenderer();

        void Begin(const Environment3D& env);
        void Draw(const Cubemap& cm);
        void End();

    private:
        void setup_vertices();
    };
}
